FIG. 1 illustrates major portions of a graphics pipeline 100 based on the OpenGL® 3.0 standard. An illustrative set of stages includes a vertex shader operations stage 105, a primitive assembly and rasterization stage 110, a fragment pixel shader operations stage 115, a frame buffer stage 120, and a texture memory 125. The pipeline operates to receive vertex data, shade vertices, assemble and rasterize primitives, and perform shading operations on fragments/pixels.
One aspect of the graphics pipeline 100 is that every region of an image is rendered at the same minimum resolution. In particular, in a conventional graphics pipeline, a sampling rate (average number of samples per pixel) is typically at least one sample for every pixel of an image.
One aspect of the conventional graphics pipeline is that it is wasteful and requires more pixel shading operations than desired. In particular, there is no automation in the graphics pipeline to permit strategic choices to be automatically made to reduce a sampling rate below one sample per pixel (sub-sampling/de-sampling) in local regions of an image. In the context of mobile devices, this means that the amount of energy that is consumed is higher than desired.